<?php

namespace UsersModule;

use \Nette\Application\UI\Form;

class DefaultPresenter extends BasePresenter {
  
  public function actionDefault(){
    if(!$this->user->isLoggedIn()){
      $this->redirect(':Lessons:Default:default');
    }
  }
  
  public function renderDefault(){
    $this->template->userData = $this->context->createUsers()->where('id', $this->getUser()->getId())->fetch();
  }

  public function actionActivate($login = '', $code = '') {
    if ($login && $code) {
      $um = $this->context->createUserManager();
      if (!$um->activateUser($login, $code)) {
        $this->flashMessage('Váš účet se nepodařilo aktivovat', 'error');
        $this->redirect('this', array());
      } else {
        $this->flashMessage('Váš účet byl aktivován', 'success');
        $this->redirect(':Lessons:Default:default');
      }
    }
  }

  public function createComponentActivationForm() {
    $activatingForm = new Form();

    $activatingForm->addText('login', 'Přihlašovací jméno')
        ->addRule(Form::FILLED, 'Přihlašovací jméno musí být vyplněno');

    $activatingForm->addText('code', 'Aktivační kód')
        ->addRule(Form::FILLED, 'Aktivační kód musí být vyplněn');

    $activatingForm->addSubmit('send', 'Aktivovat účet');

    $activatingForm->onSuccess[] = callback($this, 'activationFormSuccess');

    return $activatingForm;
  }

  public function activationFormSuccess(Form $form) {
    $values = $form->getValues();

    $um = $this->context->createUserManager();

    if (!$um->activateUser($values['login'], $values['code'])) {
      $form->addError('Kombinace přihlašovacího jména a aktivačního kódu není správná');
      return false;
    }

    $this->flashMessage('Váš účet byl aktivován', 'success');
    $this->redirect(':Lessons:Default:default');
  }

}
